package listados;

import java.awt.Color;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;

import paneles.MonedaRender;

import com.toedter.calendar.JDateChooser;

import accesoADatos.AccesoADatos;

import datos.Compra;
import datos.Retiro;

public class ListadoRetiros extends ListadoDialog {

	private JLabel lFechaInicio;
	private JDateChooser cFechaInicio;
	private JDateChooser cFechaFin;
	private JLabel lUsuario;
	private JComboBox cbPrroducto;
	private JTextField tUsuario;
	private JLabel lFechaFin;

	public ListadoRetiros(JFrame frame, Vector v) {
		super(frame, v);
		this.setTitle("Listado de Retiros");
		{
			lFechaInicio = new JLabel();
			lFechaInicio.setForeground(new Color(0,0,0));
			lFechaInicio.setBorder(new LineBorder(new Color(0,0,0)));
			super.jPanel1.add(lFechaInicio);
			lFechaInicio.setText("Fecha inicio");
			lFechaInicio.setHorizontalAlignment(SwingConstants.CENTER);
			lFechaInicio.setPreferredSize(new java.awt.Dimension(100,21));
			lFechaInicio.setSize(100, 21);
		}
		{
			cFechaInicio = new JDateChooser();
			cFechaInicio.setDate(new Date());
			super.jPanel1.add(cFechaInicio);
			cFechaInicio.setBorder(new LineBorder(new Color(0,0,0)));
			cFechaInicio.setPreferredSize(new java.awt.Dimension(130, 21));
		}
		{
			lFechaFin = new JLabel();
			lFechaFin.setForeground(new Color(0,0,0));
			lFechaFin.setBorder(new LineBorder(new Color(0,0,0)));
			super.jPanel1.add(lFechaFin);
			lFechaFin.setText("Fecha fin");
			lFechaFin.setHorizontalAlignment(SwingConstants.CENTER);
			lFechaFin.setPreferredSize(new java.awt.Dimension(100,21));
			lFechaFin.setSize(100, 21);
		}
		{
			cFechaFin = new JDateChooser();
			cFechaFin.setDate(new Date());
			super.jPanel1.add(cFechaFin);
			cFechaFin.setBorder(new LineBorder(new Color(0,0,0)));
			cFechaFin.setPreferredSize(new java.awt.Dimension(130, 21));
		}
		{
			
			lUsuario = new JLabel();
			lUsuario.setForeground(new Color(0,0,0));
			lUsuario.setBorder(new LineBorder(new Color(0,0,0)));
			super.jPanel1.add(lUsuario);
			lUsuario.setText("Usuario");
			lUsuario.setHorizontalAlignment(SwingConstants.CENTER);
			lUsuario.setPreferredSize(new java.awt.Dimension(100,21));
			lUsuario.setSize(100, 21);
		}
		{
			tUsuario = new JTextField();
			tUsuario.setBorder(new LineBorder(new Color(0,0,0)));
			tUsuario.setPreferredSize(new java.awt.Dimension(150,21));	
			this.jPanel1.add(tUsuario);
		}
		{
			this.paneListados1.getJTable1().getColumnModel().getColumn(4).setCellRenderer(new MonedaRender());
			this.paneListados1.getJTable1().getColumnModel().getColumn(0).setMinWidth(120);
		}
		pack();
		this.setLocationRelativeTo(null);
		this.setVisible(true);
	}

	@Override
	public Vector<Retiro> cargarVector(Object object) {
		Retiro r=(Retiro) object;
		Vector v = new Vector();
		v.add(this.FormatearFecha(r.getFecha()));
		v.add(r.getConcepto());
		v.add(r.getDescripcion());
		v.add(r.getUsuario());
		v.add(new Double(r.getImporte()));
		return v;
	}

	@Override
	public List getLista() {
		Date inicio = this.cFechaInicio.getDate();
		Date fin = this.cFechaFin.getDate();
		List l=AccesoADatos.getInstance().getRetiros(inicio, fin);
		List result = new ArrayList();
		Criterio c = getCriterio();
		for (int i=0; i<l.size();i++){
			Retiro r=(Retiro)l.get(i);
			if (c.eval(r))
				result.add(r);
		}
		return result;
	}

	private Criterio getCriterio() {
		return new CriterioUsuario(this.tUsuario.getText());
	}

}
